﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Knights.Recursos;

namespace Knights.Objeto
{
    class Personaje : Objeto
    {
        private float VelocidadMovimiento = 0.1f; //probar -> despues con habilidades de caballero

        private Caballero caballero;
        private bool debeAtacar;

        public Personaje(string nombre, Vector3 posicion)
            : base(new Cubo(4), posicion)
        {
            caballero = new Caballero(nombre);
        }

        public Personaje(string nombre)
            : this(nombre, Vector3.Zero)
        { }

        public override void Actualizar()
        {
            //KeyboardState teclado = Keyboard.GetState();

            //if (teclado.IsKeyDown(Keys.W))
            //{
            //    Mover(Direccion.Adelante * VelocidadMovimiento);
            //}
            //if (teclado.IsKeyDown(Keys.S))
            //{
            //    Mover(Direccion.Atras * VelocidadMovimiento);
            //}
            //if (teclado.IsKeyDown(Keys.D))
            //{
            //    Mover(Direccion.Derecha * VelocidadMovimiento);
            //}
            //if (teclado.IsKeyDown(Keys.A))
            //{
            //    Mover(Direccion.Izquierda * VelocidadMovimiento);
            //}

            if (debeAtacar)
                DetectarAtaque();

            base.Actualizar();
        }

        private void DetectarAtaque()
        {
        }

        private void Mover(Vector3 vector)
        {
            if (!Colisiona(posicion.X + vector.X, posicion.Z))
                posicion.X += vector.X;
            if (!Colisiona(posicion.X, posicion.Z + vector.Z))
                posicion.Z += vector.Y;

            posicion.Y += vector.Z;
        }

        public Caballero Caballero { get { return caballero; } }

        public Vector3 Posicion
        {
            get { return posicion; }
            set { posicion = value; }
        }
    }
}
